Java 8 catch 22 与 lambda 表达式和有效的 final
全部标签 这个问题在这里已经有了答案:HowcanIvalidateanemailaddressusingaregularexpression?(80个答案)关闭9年前。我已经做了一些测试,但我想问问是否有人发现这个用于电子邮件验证的ruby正则表达式有问题:/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i好看吗?
我有一大堆正在浏览的电子邮件。很多邮件都有拼写错误。我正在尝试构建一个字符串来检查有效的电子邮件。这就是我的正则表达式。defis_a_valid_email?(email)(email=~/^(([A-Za-z0-9]*\.+*_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\+)|([A-Za-z0-9]+\+))*[A-Za-z0-9]+@{1}((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,4}$/i)end如果电子邮件为下划线且只有一个句点,则通过。我有很多电子邮件的名称本身有不止一个句点。我如何在正则表达式中检查它。
假设我有一个任意的字符串`Aman+aplan*acanal:Panama!`我想对大小写不同的字符串进行正则表达式搜索。也就是说,这个正则表达式应该匹配字符串`aman+APLAN*acanal:PaNaMa!`我认为最好的方法是在Ruby正则表达式中对每个具有特殊含义的字符进行反斜杠转义,然后使用该字符串执行Regexp.new和Regexp::IGNORECASE作为参数。是对的吗?是否存在用于将任意字符串转换为文字正则表达式的经过验证的正则表达式?顺便说一下,我最终想使用这个正则表达式来做一个任意的不区分大小写的MongoDB查询。因此,如果我有其他方法可以做到这一点,请告诉我
什么时候应该使用lambda或proc?我看到它们被描述为匿名函数,但我很难理解这个概念。如果您可以在Ruby中,尤其是在RubyonRails中使用任何链接或示例,我将不胜感激。 最佳答案 http://augustl.com/blog/2008/procs_blocks_and_anonymous_functions/简要介绍了什么是block/过程/lambda,如何使用它们,以及它们与其他语言中的函数的比较。它肯定会回答您的问题。请注意,最后一节“关于lambda的注释”提到了仅在Ruby1.8中适用并在1.9中更改的要点-
如果整个字符串匹配(而不是子字符串),我如何针对正则表达式设置字符串以返回true?例如:test(\ee\,"street")#=>returnsfalsetest(\ee\,"ee")#=>returnstrue!谢谢。 最佳答案 您可以用\A匹配字符串的开头,用\Z匹配结尾。在ruby中,^和$也分别匹配行的开头和结尾:>>"a\na"=~/^a$/=>0>>"a\na"=~/\Aa\Z/=>nil>>"a\na"=~/\Aa\na\Z/=>0 关于ruby-如何在ruby
我想创建一个过滤器,并能够将其应用于数组或散列。例如:defisodd(i)i%2==1end我希望能够像这样使用它:x=[1,2,3,4]putsx.select(isodd)x.delete_if(isodd)putsx这看起来应该是直截了当的,但我不知道我需要做什么才能让它发挥作用。 最佳答案 创建一个lambda,然后使用&运算符转换为block:isodd=lambda{|i|i%2==1}[1,2,3,4].select(&isodd) 关于ruby-如何在Ruby中创建可重
在其他语言中,在RegExp中,您可以使用/.../g进行全局匹配。然而,在Ruby中:"hellohello".match/(hello)/只捕获一个问候语。如何捕获所有的hello? 最佳答案 您可以使用扫描方法。scan方法将为您提供所有匹配项的数组,或者如果您将其传递给一个block,则将每个匹配项传递给该block。"hello1hello2".scan(/(hello\d+)/)#=>[["hello1"],["hello2"]]"hello1hello2".scan(/(hello\d+)/).eachdo|m|put
谁能解释一下(?i)和(?-i)在正则表达式中包裹一个词是什么意思?(?i)test(?-i)我测试过,它匹配test、TEST和teSt。但我以前从未见过这个。i之前的?是什么意思?我看到这个here. 最佳答案 (?i)开始不区分大小写模式(?-i)关闭不区分大小写模式更多信息请访问"TurningModesOnandOffforOnlyPartofTheRegularExpression"sectionofthispage:Modernregexflavorsallowyoutoapplymodifierstoonlypart
我认为下面两个是等价的:named_scope:admin,lambda{|company_id|{:conditions=>['company_id=?',company_id]}}named_scope:admin,lambdado|company_id|{:conditions=>['company_id=?',company_id]}end但Ruby正在提示:ArgumentError:triedtocreateProcobjectwithoutablock有什么想法吗? 最佳答案 这是一个解析器问题。试试这个named_s
我正在尝试将From行一直匹配到Subject行的末尾,如下所示:....From:XXXXXXDate:Tue,8Mar201110:52:42-0800To:XXXXXXXSubject:XXXXXXX....到目前为止我有:/From:.*Date:.*To:.*Subject/m但这与主题行的末尾不匹配。我尝试添加$但没有效果。 最佳答案 您可以使用/m修饰符启用多行模式(即允许.匹配换行符),您可以使用?执行非贪婪匹配:message="From:person@example.com\nDate:01-01-2011\nT